def amount_converter(data:float):
    '''
    小写金额转大写金额
    data: float scalar
    '''
    def _csplit(cdata):  # 拆分函数，将整数字符串拆分成[亿，万，仟]的list
        '''
        将整数部分字符数字以4个为一组进行分割，返回 list
        例：csplit('2938329803') 返回 ['29', '3832', '9803']
        '''                      
        g = len(cdata) % 4
        csdata = []
        lx = len(cdata) - 1
        if g > 0:
            csdata.append(cdata[0:g])
        k = g
        while k <= lx:
            csdata.append(cdata[k:k + 4])
            k += 4
        return csdata

    def _cschange(cki):  # 对[亿，万，仟]的list中每个字符串分组进行大写化再合并
        '''
        将4位字符转为仟佰十的大写
        例： cschange('9803'), 返回 '玖仟捌佰零叁'
        '''
        lenki = len(cki)
        i = 0
        lk = lenki
        chk = u''
        for i in range(lenki):
            if int(cki[i]) == 0:
                if i < lenki - 1:
                    if int(cki[i + 1]) != 0:
                        chk = chk + _gdict[int(cki[i])]
            else:
                chk = chk + _gdict[int(cki[i])] + _cdict[lk]
            lk -= 1
        return chk

    _cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'}
    _xdict = {1: u'元', 2: u'万', 3: u'亿', 4: u'兆'}  # 数字标识符
    _gdict = {0: u'零', 1: u'壹', 2: u'贰', 3: u'叁', 4: u'肆', 5: u'伍', 6: u'陆', 7: u'柒', 8: u'捌', 9: u'玖'}

    data = float(data)
    cdata = str(data).split('.')

    cki = cdata[0]  # 整数部分
    ckj = cdata[1]  # 小数部分
    i = 0
    chk = u''
    cski = _csplit(cki)  # 分解字符数组[亿，万，仟]三组List:['0000','0000','0000']
    ikl = len(cski)  # 获取拆分后的List长度
    # 大写合并
    for i in range(ikl):
        if _cschange(cski[i]) == '':  # 有可能一个字符串全是0的情况
            chk = chk + _cschange(cski[i])  # 此时不需要将数字标识符引入
        else:
            chk = chk + _cschange(cski[i]) + _xdict[ikl - i]  # 合并：前字符串大写+当前字符串大写+标识符
    # 处理小数部分
    lenkj = len(ckj)
    if lenkj == 1:  # 若小数只有1位
        if int(ckj[0]) == 0:
            chk = chk + u''
        else:
            chk = chk + _gdict[int(ckj[0])] + u'角'
    else:  # 若小数有两位的四种情况
        if int(ckj[0]) == 0 and int(ckj[1]) != 0:
            chk = chk + u'零' + _gdict[int(ckj[1])] + u'分'
        elif int(ckj[0]) == 0 and int(ckj[1]) == 0:
            chk = chk + u''
        elif int(ckj[0]) != 0 and int(ckj[1]) != 0:
            chk = chk + _gdict[int(ckj[0])] + u'角' + _gdict[int(ckj[1])] + u'分'
        else:
            chk = chk + _gdict[int(ckj[0])] + u'角'
    return chk if chk[-1:]=='分' else chk+'整'
